home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 3
/
Gold Medal Software - Volume 3 (Gold Medal) (1994).iso
/
os2
/
birth10.arj
/
BIRTHDAY.DOK
< prev
Wrap
Text File
|
1994-03-07
|
14KB
|
381 lines
***************************************************************
*** an english documentation is in then file BIRTHDAY.DOC contained***
***************************************************************
Birthday Reminder V1.0
geschrieben März 1994 von
Wolfram Koerner
Kontakt:
--------
Internet: koerner@cip.informatik.uni-wuerzburg.de
Fido : Wolfram Koerner@2:2490/5100.8
Sackpost: Wolfram Koerner
Friedenstrasse 5a
97072 Wuerzburg
GERMANY
Inhalt:
-------
* Wofür ?
* Wie geht's ?
* Geburtstags-Test bei jedem Systemstart !
* Format der Datenbank
* Rechtliches
Wofür ?
-------
BIRTHDAY.CMD ist ein REXX-Programm, mit dem vergessliche Typen
(wie z.B. ich...) automatisch an Geburtstage oder andere,
jährlich wiederkehrende Ereignisse erinnert werden können.
Zu jedem Ereigniss kann eine Vorwarnzeit von maximal 28 Tagen
eingestellt werden. Z.B. um für eine Erbtante noch in Ruhe ein
Geschenk besorgen und abschicken zu können.
Das Programm hat also zwei Arten von Meldungen:
* Warnmeldung nach dem Motto:
WARNING: 22. Birthday in 5 day(s) !
Also Achtung die folgende Person hat in 5 Tagen ihren
22. Geburtstag
* Geburtstagsmeldungen nach dem Motto:
A HAPPY 22. BIRTHDAY TO:
Also Achtung die folgende Person hat HEUTE ihren 22. Geburtstag
Bei jeder Vorwarnung und bei jeder Geburtstagsmeldung wird
anschließend abgefragt, ob nochmal gewarnt werden soll. Wird
also die Frage:
Keep event active (Y/N) <enter>=YES ?
mit Druck auf "Enter" oder "y" beantwortet, so bleibt das
Ereignis aktiv und wird beim nächsten Test auf Geburtstage wieder
angezeigt (wenn der Geburtstag nicht schon vorbei ist !!).
Wird hier hingegen mit "n" geantwortet, so wird für den
entsprechenden Geburtstag in diesem Jahr keine Warnung mehr
ausgegeben. Das Ereignis wird bis zum nächsten Geburtstag
"Passiv" geschaltet.
Passive Ereignisse können auch nachträglich noch "reaktiviert"
werden. Siehe Punkt "R" im Hauptmenü.
Damit das Programm an die Geburtstage erinnern kann, braucht es
eine Datenbank, in der die Namen mit den entsprechenden Daten
gespeichert sind (diese Datenbank heißt in der Regel:
"C:\BIRTHDAY.DAT). Wird ein anderer Dateiname gewünscht, so kann
er im REXX-Script in Zeile 28 editiert werden.
Wegen der Datenbank hat BIRTHDAY.CMD auch im wesentlichen 2
Betriebsarten:
* Datenbankmodus (hier kann die Datenbank gepflegt werden)
BIRTHDAY.CMD
* Checkmodus (hier wird nur auf Geburtstage getestet)
BIRTHDAY.CMD /c
Wie geht's ?
------------
Soll das Programm zu erstenmal aufgerufen werden, einfach nur eingeben:
BIRTHDAY.CMD<enter>
Es sollte darauf der folgende Bildschirm erscheinen :
┌────────────────────────────────────────────────────────────────────────────┐
│ Birthday Reminder V1.0 │
│ │
│ Today:03/06/94 │
│ Database: 0 Recs - DATE sorted │
├────────────────────────────────────────────────────────────────────────────┤
│ │
│ │
│ L ..... List complete database │
│ P ..... Print database │
│ R ..... Reactivate passive events │
│ S ..... Sort database by: NAME │
│ C ..... Check for birthdays │
│ │
│ A ..... Add a record │
│ E ..... Edit a record │
│ D ..... Delete a record │
│ │
│ Q ..... Quit program (and save data) │
│ │
│ _ ----> YOUR CHOICE │
│ │
└──────────────────────────────────────────────────────────────────(C)'94 WOK┘
Unter der Titelzeile wird das aktuelle Datum im Format MM/TT/JJ
angezeigt. Der Zeile darunter ist zu entnehmen, daß im Moment
keine (0) Einträge (Records) in der Datenbank enthalten sind.
Die Datenbank wird nach Datum sortiert (DATE sorted) es ist auch
möglich sie nach Namen der Geburtstagskinder zu sortieren (NAME
sorted - siehe Punkt"S")
Darunter ist das Hauptmenü zu sehen.
HAUPTMENÜ:
L ..... List complete database
Listet den kompletten Inhalt der Datenbank auf. Nach jeweils
20 Zeilen wird auf die Taste <enter> gewartet.
Das Format ist:
No. Name Memo mm/dd/yy (PW) :NE #D
-------------------------------------------------------------------------
No. - Nummer des Datensatzes.
Ein Datensatz kann seine Nummer ändern, wenn die
Sortierreihenfolge geändert word, oder wenn davor
ein neuer Datensatz eingefügt wird.
Diese Nummer muss für das Löschen oder das
Editieren eines bestehenden Datensatzes angegeben
werden.
Name - Der Name des Geburtstagskindes.
Er darf maximal 25 Zeichen betragen. Werden beim
Anlegen des Datensatzes mehr Zeichen eingegeben
werden ab dem 25 Zeichen alle Zeichen
abgeschnitten.
Nach diesem Datenfeld kann die Datenbank anstatt
nach dem Geburtstagsdatenfeld sortiert werden.
("s" aus dem Hauptmenü)
Memo - Hier kann zusätzlich zum Namen noch ein maxi-
mal 20 Zeichen langes Memo-Feld eingegeben werden.
mm/dd/yy - Hier steht das Geburtstagsdatum im Format
MM = Zwei Ziffern für den Monat (00 bis 12)
DD = Zwei Ziffern für den Tag des Monats (00 bis
max. 31)
YY = Das Jahr der Geburt (00 bis 99)
Im Jahr 2000 wird mein Programm
wahrscheinlich Probleme bekommen :-(
(PW) - Die Vorwarntage (0 - 28)
ab dem PW-ten Tag vor dem Geburtstag wird schon
eine Warnung ausgegeben.
:NE - Das Jahr des nächsten Ereignisses.
Beim Geburtstag in DIESEM Jahr wird das Programm
das nächste mal aktiv. Dieses Jahr wird erhöht,
wenn der Geburtstag entweder dieses Jahr schon
vorbei ist,oder wenn das Ereigniss für ein Jahr
auf "PASSIV" geschaltet wurde, also wenn die Frage:
Keep event active (Y/N) <enter>=YES ?
mit "n" beantwortet wurde.
Alle Jahreszahlen, die größer als das aktuelle
Jahr sind können mit dem Punkt "R" aus dem
Hauptmenü wieder reaktiviert werden. Dabei wird
das aktuelle Jahr dort eingesetzt.
#D - Anzahl der Tage bis zum nächsten Geburtstag.
Steht hier eine "-1" so wird momentan keine
Warnung ausgegeben.
HAUPTMENÜ:
P ..... Print database
Hiermit kann der Inhalt der Datenbank auf dem Drucker, auf
einer Datei oder auch nochmal auf dem Bildschirm ausgegeben
werden. Dazu muss ein Einheitenname eingegeben werden, auf dem
die Liste ausgegeben werden soll.
z.B.: PRN Drucker
CON Bildschirm
c:\daten.txt für eine Datei
HAUPTMENÜ:
R ..... Reactivate passive events
Hiermit können Ereignisse, die "ausversehen" für dieses Jahr
auf "PASSIV" gesetzt wurden wieder reaktiviert werden.
Wurde also bei der Frage
Keep event active (Y/N) <enter>=YES ?
Aus Versehen "n" eingegeben, so werden mit dem Punkt "R"
wieder alle Ereignisse, die noch nicht vorbei sind als Warnung
angezeigt.
HAUPTMENÜ:
S ..... Sort database by: NAME/DATE
Normalerweise ist die Datenbank nach den Geburtstagsdaten
sortiert. Dies ist sinnvoll, weil man dann auch unabhängig von
den Warnungen sehen kann in welcher Reihnefolge die Geburtstage
über das Jahr verteilt sind.
Sucht man jedoch nach dem Geburtstag einer bestimmten Person in
einer großen Datenbank, so kann es sinnvol sein, die Datenbank
nach NAMEN sortieren. Ein Druck auf "S" sortiert jeweils nach
dem anderen Datenbankfeld. Entweder also NAME oder DATE.
Die Datenbank wird auch in der Reihenfolge des bei Beenden
gültigen Sortiermodus abgespeichert.
HAUPTMENÜ:
C ..... Check for birthdays
Testet die Datenbank nach anstehenden Geburtstagen durch.
Eventuell nötige Warnungen und Geburtstagsmeldungen werden
ausgegeben.
Dieser Menüpunkt kann auch direkt von der Kommandozeile aus
aufgerufen werden in dem man den Schalter /C benutzt:
BIRTHDAY.CMD /c
Bei einer Warnung werden zusätzlich zwei Piepstöne im
PC-Lautsprecher erzeugt und bei einer Geburtstagsmeldung wird
kurz die Melodie "Happy Birthday to you" angespielt. Wenn
diese Töne nerven, so können sie mit dem Schalter /Q
abgeschaltet werden. Also enweder:
BIRTHDAY.CMD /q
oder:
BIRTHDAY.CMD /c /q
HAUPTMENÜ:
A ..... Add a record
Fügt einen Datensatz in die Datenbank ein.
Die entsprechenden Felder müssen sinnvoll ausgefüllt werden.
Speziell Geburtsdatum un Vorwarnzeit sollten erlaubte Werte
beinhalten, da zwar einige Fehleingaben abgefangen werden, aber
sicherlich nicht ALLE !
Also ERST DENKEN DANN TIPPEN !
HAUPTMENÜ:
E ..... Edit a record
Nach Abfrage der Datensatznummer können alle Angaben des
Datensatzes erneut bearbeitet werden.
Mit "E"-Exit verläßt man den Bearbeitungsmodus, der Datensatz
wird dann an neuer Stelle in die Datenbank einsortiert und hat
somit eventuell nach der Bearbeitung eine ANDERE
Datensatznummer.
HAUPTMENÜ:
D ..... Delete a record
Hiermit kann ein Datensatz gelöscht werden.
Zuerst muß die Datensatznummer eingegeben werden.
Es folgt eine Sicherheitsabfrage, worauf bei "positiver"
Antwort der Datensatz gelöscht wird.
HAUPTMENÜ:
Q ..... Quit program (and save data)
Hiermit kann das Programm verlassen werden.
Vorher wird die aktuelle Datenbank gespeichert. In welcher
Datei dies geschieht steht am Anfang des REXX-Programmes in
Zeile 28 (ungefähr!) hinter der Variable:
DBFile="c:\birthday.dat"
Wenn ein anderer Datenbankname gewünscht wird, dann muss er
hier eingetragen werden.
Wenn die Datenbank einmal vollständig ist, kann man jeweils
mit :
BIRTHDAY.CMD /c
einen Datenbankcheck veranlassen, bei dem nicht das ganze
Scipt, sondern nur die Testroutine angesprungen wird.
Geburtstags-Test bei jedem Systemstart
--------------------------------------
Will man bei jedem Systemstart von OS/2 die Datenbank nach
aktuellen Geburtstagen durchsucht haben, so sollte man im
Wurzelverzeichniss des OS/2-Bootlaufwerkes (meistens: "C:\") eine
Datei mit dem Namen
STARTUP.CMD
anlegen. Diese Datei wird bei jedem Systemstart von OS/2
abgearbeitet. In diese Datei schreibe man nun noch einen Aufruf
für BIRTHDAY.CMD
Zum Beispiel:
call c:\cmd\birthday.cmd /c
Format der Datenbank
--------------------
Birthday Database 1.0 (Dies MUSS in der 1.Zeile stehen !!!)
SortIndex=n (2.Zeile MUSS lauten: n=1 oder n=3)
(3.Zeile MUSS eine Leerzeile sein !)
Name # 1 (Beginn 1. Datensatz)
Memo # 1
mm/dd/yy (Geburtstag # 1)
nn (Vorwarntage von 0 bis 28)
95 (Jahr des nächsten Ereignisses)
(Nach JEDEM Record eine Leerzeile !!!)
Name # 2 (Beginn 2. Datensatz)
Memo # 2
02/03/71
3
95
(Leerzeile auch nach dem LETZTEN Record)
Rechtliches
-----------
Speziell bei Programmen, die Daten bewegen besteht immer die
Gefahr, dass durch Programmierfehler Daten verloren gehen. Ich
möchte an dieser Stelle auf mögliche Gefahren hinweisen und
betonen, dass ich keinerlei Haftung für irgendeinen Schaden
übernehmen werde, den das Programm anrichten sollte. Ich habe
zwar nach bestem Können Fehler beseitigt. Aber auszuschliessen
sind sie nie ! Sollten Sie mit diesen Bedingungen nicht
einverstanden sein, so ist das Programm nicht zu starten, sondern
zu löschen.
Das Copyright liegt bei mir. Das Programm ist FREEWARE. Ich
erlaube also kostenlose Verbreitung, soweit alle Dateien
(Programm und Dokumentation) zusammen unverändert weitergegeben
werden. Speziell das REXX-Script darf vor der Weitergabe nicht
verändert werden. Sollte Grund zu Veränderungen bestehen, bitte
mit mir Kontakt aufnehmen. Wir können dann zusammen
Verbesserungen einbauen oder Fehler beheben. Denn nur so ist
gewährleistet, dass kein Versions-Chaos entsteht.
--------------------------------------------Würzburg im März 1994